package de.dpunkt.myaktion.controller;

import java.io.Serializable;

import javax.enterprise.context.SessionScoped;
import javax.enterprise.event.Event;
import javax.inject.Inject;
import javax.inject.Named;

import de.dpunkt.myaktion.model.Aktion;
import de.dpunkt.myaktion.util.qualifier.Deleted;

@Named
@SessionScoped
public class AktionListController implements Serializable {

	private static final long serialVersionUID = 1389774465124782156L;

	@Inject
	private AktionEditController aktionEditController;
	
	@Inject
	private SpendeListController spendeListController;
	
	@Inject @Deleted
	private Event<Aktion> aktionDeleteEventSrc;

	private Aktion aktionToDelete;

	public String doAddAktion() {
		aktionEditController.addAktion();
		return Pages.AKTION_EDIT;
	}

	public String doEditAktion(final Aktion aktion) {
		aktionEditController.editAktion(aktion);
		return Pages.AKTION_EDIT;
	}

	public String doEditSpendeForm(final Aktion aktion) {
		System.out.println("Edit Spende Form " + aktion);
		return Pages.SPENDE_FORM_EDIT;
	}

	public String doListSpende(final Aktion aktion) {
		spendeListController.setAktion(aktion);
		return Pages.SPENDE_LIST;
	}

	public void doPrepareDelete(final Aktion aktion) {
		aktionToDelete = aktion;
	}
	
	public void doCommitDelete() {
		aktionDeleteEventSrc.fire(aktionToDelete);
	}
}
